Guard   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 13
dl 0
loc 26
rs 10
c 0
b 0
f 0
wmc 8

4 Functions

Rating   Name   Duplication   Size   Complexity  
A assertValidMetadata 0 5 2
A assertValidDirected 0 5 2
A assertNonEmptyStringParameter 0 5 2
A assertValidMetadataOrNull 0 5 2
1
const check = require('check-types');
2
3
/**
4
 * Various guards.
5
 */
6
class Guard {
7
8
    static assertNonEmptyStringParameter(name, value) {
9
        if (!check.nonEmptyString(value)) {
10
            throw new Error('Parameter "' + name + '" has to be an non-empty string.');
11
        }
12
    }
13
14
    static assertValidMetadata(metadata) {
15
        if (!check.nonEmptyObject(metadata)) {
16
            throw new Error('Metadata on an node has to be an object.');
17
        }
18
    }
19
20
    static assertValidMetadataOrNull(metadataOrNull) {
21
        if (check.assigned(metadataOrNull)) {
22
            Guard.assertValidMetadata(metadataOrNull);
23
        }
24
    }
25
26
    static assertValidDirected(directed) {
27
        if (!check.boolean(directed)) {
28
            throw new Error('Directed flag on an edge has to be boolean.');
29
        }
30
    }
31
}
32
33
module.exports = {
34
    Guard,
35
};